package com.escool.controller;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import com.escool.model.SgUsuarios;
import com.escool.model.SgUsuariosHasSgRoles;
import com.escool.service.SgUsuarioService;

@Controller
public class UsuarioController {
	
	@Autowired
	SgUsuarioService usuarioService;
	
	@RequestMapping(value = "showUsuarios")
	public String showUsuarios(Map<String, Object> map){
		map.put("user", new SgUsuarios());
		map.put("userList", usuarioService.listUsuarios());
		return "ingresoUsuarios";
	}
	
	@RequestMapping(value = "addUsuarios")
	public String addUsuarios(@ModelAttribute("user") @Valid SgUsuarios usuarios,BindingResult result, Map<String, Object> map){
		usuarioService.addUsuarios(usuarios);
		return "redirect:/showUsuarios";
	}
	
	@RequestMapping(value = "updateUsuarios")
	public String updateUsuarios(@ModelAttribute("user") @Valid SgUsuarios usuarios,BindingResult result, Map<String, Object> map){
		usuarioService.editUsuarios(usuarios);
		return "redirect:/showUsuarios";
	}
	
	@RequestMapping(value = "showUsuarioRol_2")
	public String addUsuariosRol(@ModelAttribute("user") @Valid SgUsuarios usuarios,BindingResult result, Map<String, Object> map){
		map.put("usuarioRol", new SgUsuariosHasSgRoles());
		map.put("rolesList", usuarioService.listRoles());
		map.put("usuarioRolList", usuarioService.listUsuarioRol(usuarios.getIdsgUsuarios()));
		return "usuarioRol";
	}
	
	@RequestMapping(value = "showUsuarioRol")
	public String addUsuarioRol(@ModelAttribute("usuarioRol") @Valid SgUsuariosHasSgRoles usuarioRol,BindingResult result, Map<String, Object> map, HttpServletRequest request){
		String id = request.getParameter("id");
		map.put("usuarioRol", usuarioRol);
		map.put("rolesList", usuarioService.listRoles());
		map.put("usuarioRolList", usuarioService.listUsuarioRol(Integer.valueOf(id)));
		return "usuarioRol";
	}

}
